package com.atguigu05.method_more._04recursion.exer1;

/**
 * ClassName: RecusionExer
 * Package: com.atguigu05.method_more._04recursion.exer1
 * Description:
 *
 * @Author BuTang
 * @Create 2023/2/28 16:51
 * @Version 1.0
 */
public class RecusionExer {
    public static void main(String[] args) {
        RecusionExer re =new RecusionExer();
        System.out.println(re.method1(10));
        System.out.println(re.method2(10));
    }
//    练习1：
//    已知一个数列：f(20) = 1,f(21) = 4,f(n+2) = 2*f(n+1)+f(n),
//    其中n是大于0的整数，求f(10)的值。

    public int method1(int n){
      if (n ==20){
          return 1;
      }else if( n==21){
          return 4;
      }else {
          return method1(n+2)-2*method1(n+1);
      }
    }
//    练习2：
//    已知有一个数列：f(0) = 1,f(1) = 4,
//    f(n+2)=2*f(n+1) + f(n),其中n是大于0的整数，求f(10)的值。
    public int method2(int n){
        if(n==0){
            return 1;
        }else if(n==1){
            return 4;
        }else {
            return 2*method2(n-1)+method2(n-2);
        }
    }
}
